package com.dodock.generic.helper;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

import com.google.appengine.api.datastore.DatastoreService;
import com.google.appengine.api.datastore.DatastoreServiceFactory;
import com.google.appengine.api.datastore.Entity;
import com.google.appengine.api.datastore.EntityNotFoundException;
import com.google.appengine.api.datastore.KeyFactory;
import com.google.appengine.api.datastore.Text;

public class ProthomAloDetailsGenerator {
	
	String id;
	
	public ProthomAloDetailsGenerator(String id){
		this.id = id;
	}
	
	/*
	public String generate() throws IOException{

		// Get a handle on the datastore itself
		DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();		
		
		// Lookup data by known key name
		try {
			Entity detailsEntity = datastore.get(KeyFactory.createKey("NewsDetails", id));
			Text text = (Text)detailsEntity.getProperty("data");
			return text.getValue();
			
		} catch (EntityNotFoundException e) {
			
			Document doc = Jsoup.connect("http://m.prothom-alo.com/details.php?newsId="+id).get();
			Elements divs = doc.select("div[style=color:#333]");
			
			if(divs != null && divs.size()>0){
				String data = String.format("<news>%s</news>", divs.get(0).text());
				Text text = new Text(data);
				
				Entity detailsEndity = new Entity("NewsDetails", id);
				detailsEndity.setProperty("data", text);
				datastore.put(detailsEndity);
				return data;
			}	
		}
		
		return "";
	}
	*/
	
	
	public String generate() throws IOException{
		return "<header>খবর দেখার জন্যে এই এপ্লিকেশনটি আপডেট করে নিন</header><author></author><news>আপনি বাংলা পেপার এর পুরোনো ভার্সন ব্যবহার করছেন। অনুগ্রহপূর্বক  বাংলাপেপারস এর সর্বশেষ ভার্সন এ আপডেট করে নিন</news><image></image>";
	}
	
	
	public String generate2() throws IOException{
		if(id.equals("pa_int_0")){
			return "<header>খবর দেখার জন্যে এই এপ্লিকেশনটি আপডেট করে নিন</header><author></author><news>আপনি বাংলা পেপার এর পুরোনো ভার্সন ব্যবহার করছেন। অনুগ্রহপূর্বক গুগল-প্লে/অ্যানরয়েড মার্কেট থেকে বাংলাপেপারস এর সর্বশেষ ভার্সন এ আপডেট করে নিন। সর্বশেষ ভার্সনে অন্যান্য সংবাদের সাথে আরো পাচ্ছেন নকশা, আনন্দ, রস+আলো, ছুটির দিনে। </news><image></image>";
		}
		else if(id.equals("pa_ios_frnd")){
			return "<header>iTunes থেকে BanglaPapers আপডেট করুন</header><author></author><news>আপনি BanglaPapers এর পুরোনো ভার্সন ব্যবহার করছেন। অনুগ্রহপূর্বক iTunes থেকে আপডেট করে নিন। সর্বশেষ ভার্সনে আপনি প্রথম আলোর সব পাতা, ফিচার পাতা (নকশা, ছুটির দিনে, রস+আলো ইত্যাদি) এবং একই সাথে বাংলায় এবং ইংরেজিতে bdnews24.com এর খবর পড়তে পারবেন। এছাড়াও আরো বেশ কিছু ফিচার সংযোজন করা হয়েছে। আপনি অতিসত্ত্বর আপডেট করুন। পুরোনো ভার্সন কিছুদিন পরে বন্ধ করে দেওয়া হবে।</news><image></image>";
		}
		else if(id.equals("pa_ios_rough")){
			return "<header>খবর দেখার জন্যে এই এপ্লিকেশনটি আপডেট করে নিন</header><author></author><news>আপনি বাংলা পেপার এর পুরোনো ভার্সন ব্যবহার করছেন। অনুগ্রহপূর্বক গুগল-প্লে/অ্যানরয়েড মার্কেট থেকে বাংলাপেপারস এর সর্বশেষ ভার্সন এ আপডেট করে নিন। সর্বশেষ ভার্সনে অন্যান্য সংবাদের সাথে আরো পাচ্ছেন নকশা, আনন্দ, রস+আলো, ছুটির দিনে। </news><image></image>";
		}
		
		
		// Get a handle on the datastore itself
				DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();		
				// Lookup data by known key name
				try {
					Entity detailsEntity = datastore.get(KeyFactory.createKey("NewsDetails", id));
					Text text = (Text)detailsEntity.getProperty("data");
					return text.getValue();
					
				} catch (EntityNotFoundException e) {
					
					URL url = new URL(String.format("http://www.prothom-alo.com/mobileapp/FetchById.php?newsid=%s&image=on&quaity=high", id));
					BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
					String line;
					StringBuilder response = new StringBuilder("");
					while((line=reader.readLine()) != null){
						response.append(line);
					}
					
					
					String data = response.toString();
					Text text = new Text(data);
					/* save here */
					Entity detailsEndity = new Entity("NewsDetails", id);
					detailsEndity.setProperty("data", text);
					datastore.put(detailsEndity);
					return data;
						
				}
	}
	
}
